

#ifndef __CE_GFX_GL20_H__
#define __CE_GFX_GL20_H__

//#include <gfx/ieffect.h>
//#include <gfx/ieffectprogram.h>
//#include <gfx/iprogram.h>
//#include <gfx/iprogramparameter.h>
#include <gfx/ishader.h>
//#include <gfx/levelofdetail.h>

#include <GL/glew.h>
#include <vector>


/**
 * \addtogroup opengl
 * @{
 */

/**
 * @brief OpenGL 2.0 implemenation of the iShader interface
 */
class ceShaderGL20 : public iShader
{
  CE_OBJECT
private:
  GLuint					_name;
  GLenum					_st;
  ceShaderType		_type;
  bool						_compiled;

  void CreateShader();

public:
  ceShaderGL20 (ceShaderType type);

  GLuint GetName () const;

  ceShaderType GetShaderType () const;
  void SetSource (const std::string& source);
  bool Compile ();
  bool IsCompiled () const;
  std::string GetCompileInfoLog () const;
};

#if 0



#endif

/** @} */

#endif /* ! __CE_GFX_GL20_H__ */
